import socketio

# 创建异步 Socket.IO 服务器实例
sio = socketio.AsyncServer(cors_allowed_origins="*", async_mode="asgi")


# 客户端连接事件
@sio.on("connect")
async def connect(sid, env):
    print(f"New Client Connected: {sid}")
    await sio.emit("send_msg", {"data": "Hello from Server"})  # 发送欢迎消息


# 客户端断开事件
@sio.on("disconnect")
async def disconnect(sid):
    print(f"Client Disconnected: {sid}")


# 接收客户端消息事件
@sio.on("msg")
async def handle_message(sid, data):
    print(f"Message from {sid}: {data}")
    # 广播消息给所有客户端（可选）
    await sio.emit("broadcast", {"msg": f"Echo: {data}"})
